﻿Public Class KOArtemis
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenEnde)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenEnde)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "ARTEMIS"
        Armee = Armeen.BT.ToString
        Musik = "Artemis"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 6
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name

        KOLaden()
    End Sub

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If OhneFunktion = False Then
            CreateGebaeude("KRISTALL")
            HealBuildings(200)
            BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
        End If
        GebaeudeZusatzSchaden = 3
        GabeEingesetzt()
    End Sub

    Public Overrides Sub KOLaden()
        'Das ist eine gute Faehigkeit
        GebaeudeZusatzSchaden = 2
        BonusEinheiten = New StringUndZahl() {New StringUndZahl("BAUPANZER", -0.8#)}
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If
    End Sub

    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWars Then
            If OhneFunktion = False Then
                CreateGebaeude("KRISTALL")
                HealBuildings(200)
                BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            GebaeudeZusatzSchaden = 3
            GabeEingesetzt()
        Else
            If OhneFunktion = False Then
                CreateGebaeude("KRISTALL")
                CreateGebaeude("LASER")
                HealBuildings(500)
                GebaeudeNochmalSchiessen()
                BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            GebaeudeZusatzSchaden = 4
            GabeEingesetzt()
        End If
    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectCreateBuilding("KRISTALL"))
                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectCreateBuilding("KRISTALL"))
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectCreateBuilding("LASER"))
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class

Public Class KOBeschreibungArtemis
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Artemis"
        Fein = "Statik"
        Nein = "Fehlkonstruktionen"
        Beschreibung = New String() {"Ein Architekt ohne", "Gleichen. Der alles", "baut was es gibt."}
        Stil = New String() {"Gebaeude richten mehr Schaden an,", "wie normal seine Baupanzer,", "sind sehr billig."}
        Gabebeschreibung = New String() {"Er bekommt einen Kristall", "und Gebaeude bekommen", "200 Leben."}
        SpezialgabeBeschreibung = New String() {"Er bekommt 1 Kristalle", "und 1 Laser und" + "Gebaeude bekommen", "500 Leben und sie", "koennen alle Feuern."}
        GabeKosten = 3
        Spezialgabekosten = 5
        Gaben = New String() {"Bauplaene", "Geheime Bauplaene"}
        Synergie = New Decimal() {1.5#}
        KONamen = New String() {"RACHEL"}
        Doppelgabenamen = New String() {"Hoffnungsschimmer"}
        Gabesaetze = New String() {"Siehst du diese Gebaeude!" _
                                 , "Meine Einheiten erhalten Verstaerkung!" _
                                 , "Ich glaube eure Maschinen wurden falsch konstruiert!" _
                                 , "Meine Gebaeude sind unzerstoerbar!" _
                                 , "Die Strebe dort die da. Das Gebaeude steht." _
                                 , "Ich glaube eure Besetzungen sind eine Fehlkonstruktion"}
        Siegsaetze = New String() {"Nur wer Gebaeude hat kann gewinnen." _
                                , "Tja, eurer Kartenhaus ist zusammen gefallen." _
                                , "Meine Strategie hatte ein solides Fundament!"}
        Tauschsaetze = New String() {"Ich werde das wieder herrichten" _
                                    , "Was? Wir haben keine Gebaeude du Idiot!"}
        Doppelgabesaetze = New DoppelGabesatz() {}
        Niederlagesaetze = New String() {"Was meine Gebaeude zerstoert?", _
                                     "Ihr Idioten! Ihr habt den falschen Beton verwendet."}
    End Sub

End Class
